This is the logic behind our inventory indicator which took two days of intense focus by me to fully figure out and get functioning without crashing the UDK k, it may have been slightly easier with the unreal script but I already understood how to organize the logic within kismet so i chose to do it that way.
The concept itself is VERY simple, display a specific graphic when a specific weapon is equipped., However in order to make sure this is a constantly updating sequence you have to loop the sequence back into itself which means that in the spn of a second you may have 50 instances of that picture placed of the screen which will slow down and crash the UDK.
So i made a control mechanism which is run by a few simple variables established in the beginning of the sequence. basically once the player is spawned 4 variables ( 1 for each weapon ) are initialized to 0 . After testing whether or not the player is alive the game observes which weapon is currently equipped. when a weapon is not equipped that portion of the sequence merely loops itself back to the beginning. For the weapon that is equipped it passes through a conditional statement that tests whether the initial variable is less than 1. If it is less than 1 the flash movie that is the weapon graphic is displayed, the variable is given a new value of 1 and cycles back to the function that tests whether or not the player is alive.
Basically on the second loop if the weapon is still selected the conditional statement will detect that the initial variable is 1 and just continue to loop itself until the weapon is changed. at which point the variable will be reset to 0 and the process will occur for a different weapon..
Each weapon has a different initial variable that is ONLY effected when the kismet sequence travels down a specific line for that weapon.
If I were to code this structure I think a simple case statement featuring a conditional statement that protected ,multiple instances of the video playing would suffice.